int turn;				// 表示当前允许进入临界区的进程号
// 临界区代码段
extern void critical_region();
// 非临界区的代码段
extern void noncritical_region();

void process0() {
	while (1) {
		// 准备进入临界区，轮询判断当前进程能否进入
		while (turn == 0) {
			// 执行临界区
			critical_region();
			turn = 1;			// 标记当前可以进入临界区的是进程1
			noncritical_region();
		}
	}
}

void process1() {
	while (1) {
		// 准备进入临界区，轮询判断当前进程能否进入
		while (turn == 1) {
			// 执行临界区
			critical_region();
			turn = 0;			// 标记当前可以进入临界区的是进程1
			noncritical_region();
		}
	}
}
